package pe.com.cotelasa.scp.controlador.converter;

import java.io.Serializable;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import javax.inject.Inject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Component;

import pe.com.cotelasa.scp.dominio.service.IServicioOrdenCompraServicio;
import pe.com.cotelasa.scp.entidad.OrdenCompraServicio;
import pe.com.cotelasa.scp.entidad.OrdenPedido;
import pe.com.cotelasa.seguridad.controlador.backingBean.BKSession;

@FacesConverter(value = "ordenOSConverter")
@Component("ordenOSConverter")
@Scope("request")
public class OrdenOSConverter implements Converter {

    @Inject
    private IServicioOrdenCompraServicio servicioOrdenCompraServicio;
    @Autowired
    BKSession session;
    
    @Override
    public Object getAsObject(FacesContext fc, UIComponent uic, String codigo) {
        try {
            OrdenCompraServicio orden = new OrdenCompraServicio();
            orden.setCodigo(codigo);
            orden.setIdOrdenPedido(new OrdenPedido());
            orden.getIdOrdenPedido().setIdEmpresa(session.getEmpresa());
            
            return servicioOrdenCompraServicio.obtenerOrdenCSPorCodigo(orden);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    @Override
    public String getAsString(FacesContext fc, UIComponent uic, Object o) {

        if (o == null || o.equals("")) {  
            return "";  
        }else{
            return String.valueOf(((OrdenCompraServicio) o).getCodigo()); 
        }
    }

}
